home *** CD-ROM | disk | FTP | other *** search
/ Multimedia Jumpstart / Multimedia Microsoft Jumpstart Version 1.1a (Microsoft).BIN / develpmt / sdk / vfw11.win / vfwdk / drvproc.c_ / drvproc.bin
Encoding:
Text File  |  1993-11-19  |  4.0 KB  |  146 lines

  1. /****************************************************************************
  2.  *
  3.  *   drvproc.c
  4.  *
  5.  ***************************************************************************/
  6. /**************************************************************************
  7.  *
  8.  *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  9.  *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  10.  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  11.  *  PURPOSE.
  12.  *
  13.  *  Copyright (c) 1992, 1993  Microsoft Corporation.  All Rights Reserved.
  14.  * 
  15.  **************************************************************************/
  16.  
  17. #include <windows.h>
  18. #include <mmsystem.h>
  19. #include <compddk.h>
  20. #include "TxtOut.h"
  21.  
  22. HMODULE ghModule;
  23.  
  24. /***************************************************************************
  25.  *
  26.  * DriverProc The entry point for an installable driver.
  27.  *                
  28.  ***************************************************************************/
  29.  
  30. LRESULT FAR PASCAL _loadds DriverProc(DWORD dwDriverID, HDRVR hDriver, UINT uiMessage, LPARAM lParam1, LPARAM lParam2)
  31. {
  32.     INSTINFO *pi = (INSTINFO *)(WORD)dwDriverID;
  33.  
  34.     switch (uiMessage)
  35.     {
  36.         case DRV_LOAD:
  37.         return (LRESULT) Load();
  38.  
  39.     case DRV_FREE:
  40.         Free();
  41.         return (LRESULT)1L;
  42.  
  43.     case DRV_OPEN:
  44.         // if being opened with no open struct, then return a non-zero
  45.         // value without actually opening
  46.         if (lParam2 == 0L)
  47.                 return 0xFFFF0000;
  48.  
  49.         return (LRESULT)(DWORD)(WORD)Open((ICOPEN FAR *) lParam2);
  50.  
  51.     case DRV_CLOSE:
  52.         if (pi)
  53.         Close(pi);
  54.  
  55.         return (LRESULT)1L;
  56.  
  57.     /*********************************************************************
  58.  
  59.         state messages
  60.  
  61.     *********************************************************************/
  62.  
  63.         case DRV_QUERYCONFIGURE:    // configuration from drivers applet
  64.             return (LRESULT)0L;
  65.  
  66.         case DRV_CONFIGURE:
  67.             return DRV_OK;
  68.  
  69.         case ICM_CONFIGURE:
  70.             //
  71.             //  return ICERR_OK if you will do a configure box, error otherwise
  72.             //
  73.             if (lParam1 == -1)
  74.         return QueryConfigure(pi) ? ICERR_OK : ICERR_UNSUPPORTED;
  75.         else
  76.         return Configure(pi, (HWND)lParam1);
  77.  
  78.         case ICM_ABOUT:
  79.             //
  80.             //  return ICERR_OK if you will do a about box, error otherwise
  81.             //
  82.             if (lParam1 == -1)
  83.         return QueryAbout(pi) ? ICERR_OK : ICERR_UNSUPPORTED;
  84.         else
  85.         return About(pi, (HWND)lParam1);
  86.  
  87.     case ICM_GETSTATE:
  88.         return GetState(pi, (LPVOID)lParam1, (DWORD)lParam2);
  89.  
  90.     case ICM_SETSTATE:
  91.         return SetState(pi, (LPVOID)lParam1, (DWORD)lParam2);
  92.  
  93.     case ICM_GETINFO:
  94.         return GetInfo(pi, (ICINFO FAR *)lParam1, (DWORD)lParam2);
  95.         
  96.     /*********************************************************************
  97.  
  98.         draw messages
  99.  
  100.     *********************************************************************/
  101.  
  102.     case ICM_DRAW_QUERY:
  103.             return DrawQuery(pi, (LPVOID FAR *)lParam1);
  104.  
  105.     case ICM_DRAW_BEGIN:
  106.             return DrawBegin(pi,(ICDRAWBEGIN FAR *)lParam1, (DWORD)lParam2);
  107.  
  108.     case ICM_DRAW:
  109.             return Draw(pi,(ICDRAW FAR *)lParam1, (DWORD)lParam2);
  110.  
  111.     case ICM_DRAW_END:
  112.         return DrawEnd(pi);
  113.         
  114.     /*********************************************************************
  115.  
  116.         standard driver messages
  117.  
  118.     *********************************************************************/
  119.  
  120.     case DRV_DISABLE:
  121.     case DRV_ENABLE:
  122.         return (LRESULT)1L;
  123.  
  124.     case DRV_INSTALL:
  125.     case DRV_REMOVE:
  126.         return (LRESULT)DRV_OK;
  127.     }
  128.  
  129.     if (uiMessage < DRV_USER)
  130.         return DefDriverProc(dwDriverID, hDriver, uiMessage,lParam1,lParam2);
  131.     else
  132.     return ICERR_UNSUPPORTED;
  133. }
  134.  
  135. /****************************************************************************
  136.  *
  137.  * LibMain  Library initialization code.
  138.  *
  139.  ***************************************************************************/
  140. int NEAR PASCAL LibMain(HMODULE hModule, WORD wHeapSize, LPSTR lpCmdLine)
  141. {
  142.     ghModule = hModule;
  143.  
  144.     return 1;
  145. }
  146.